package com.isoft.mapper;

import com.isoft.pojo.dto.PageQueryTableDTO;
import com.isoft.pojo.entity.Field;
import com.isoft.pojo.entity.Table;
import com.isoft.pojo.vo.FieldVO;
import com.isoft.pojo.vo.Table1VO;
import com.isoft.pojo.vo.TableVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface TableMapper {
    // 获取表列表（不含字段）
    List<Table1VO> getTableList(PageQueryTableDTO pageQueryTableDTO);

    // 根据表ID列表查询字段
   List<FieldVO> getFieldsByTableIds(@Param("tableIds") List<String> tableIds);

    // 根据表ID列表查询表信息
    List<TableVO> getTableByIds(@Param("tableIds") List<String> tableIds);

    // 插入系统表
    int insertSysTable(Table entity);

    // 批量插入字段
    int batchInsertFields(@Param("fields") List<Field> fields);

    // 根据表名查询表
    Table findTableByTableName(String tableName);

    //根据表编码查询表
    Table findTablecode(String tableCode);

    // 检查系统是否存在
    boolean systemExists(@Param("systemId") int systemId);

    // 根据表名和系统ID查询表
    Table findTableByNameAndSystem(@Param("tableName") String tableName,
                                   @Param("systemId") String systemId);

    // 根据表ID删除字段
    int deleteFieldsByTableId(@Param("tableId") Integer tableId);

    // 根据表ID删除表
    int deleteTableById(@Param("tableId") Integer tableId);
}
